with Interfaces.C; use Interfaces.C;
with Interfaces.C.Strings;
with System;

package SDL_loadso_h is


  --

  -- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  -- System dependent library loading routines
  -- Some things to keep in mind:
  --   - These functions only work on C function names.  Other languages may
  --     have name mangling and intrinsic language support that varies from
  --     compiler to compiler.
  --   - Make sure you declare your function pointers with the same calling
  --     convention as the actual library function.  Your code will crash
  --     mysteriously if you do not do this.
  --   - Avoid namespace collisions.  If you load a symbol from the library,
  --     it is not defined whether or not it goes into the global symbol
  --     namespace for the application.  If it does and it conflicts with
  --     symbols in your code or other shared libraries, you will not get
  --     the results you expect. :)
  --

  -- Set up for C function definitions, even when using C++
  -- This function dynamically loads a shared object and returns a pointer
  -- * to the object handle (or NULL if there was an error).
  -- * The 'sofile' parameter is a system dependent name of the object file.
  --

   function SDL_LoadObject (sofile : Interfaces.C.Strings.chars_ptr) return System.Address;  -- SDL_loadso.h:57:65
   pragma Import (C, SDL_LoadObject, "SDL_LoadObject");

  -- Given an object handle, this function looks up the address of the
  -- * named function in the shared object and returns it.  This address
  -- * is no longer valid after calling SDL_UnloadObject().
  --

   function SDL_LoadFunction (handle : System.Address; name : Interfaces.C.Strings.chars_ptr) return System.Address;  -- SDL_loadso.h:63:79
   pragma Import (C, SDL_LoadFunction, "SDL_LoadFunction");

  -- Unload a shared object from memory
   procedure SDL_UnloadObject (handle : System.Address);  -- SDL_loadso.h:66:59
   pragma Import (C, SDL_UnloadObject, "SDL_UnloadObject");

  -- Ends C function definitions when using C++
end SDL_loadso_h;
